home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 5 / BBS in a Box -Volume V (BBS in a Box) (April 1992).iso / Files / Bus / H-L / Invoicer.cpt / Invoicer < prev    next >
Encoding:
Text File  |  1988-01-25  |  8.9 KB  |  411 lines  |  [TEXT/MSBA]

  1. DIM DT$(13):DIM CH(13):DIM DA$(13):DIM JD$(13)
  2.   CodeChk:
  3.     CLS
  4.     TEXTSIZE (24):TEXTFACE(5)
  5.     PRINT:PRINT SPC(11);"INVOICER"
  6.     TEXTSIZE(12):TEXTFACE(0)
  7.     INPUT"Customer Code ('help' for code list): ",CO$
  8.     IF CO$ = "go back" OR CO$ = "back" OR CO$ = "b" THEN RePeet = 1: GOTO FinlScreenTwo
  9.     GOSUB ClearItAll
  10.     IF CO$ = "help" OR CO$ = "h" THEN CLS: GOTO ListCodes
  11.     IF CO$ = "temp" THEN GOSUB Temp
  12.     IF CO$="quit" OR CO$="q" THEN CLS:LOAD "Open Me First",R
  13.     IF LEN(CO$)<>2 THEN RUN
  14.     
  15. GOSUB Code
  16.  
  17.   SecScreen:
  18. CLS
  19.   Address:
  20.      WINDOW 3,"",(10,45)-(485,145),3
  21.      TEXTFACE (1)
  22.      PRINT CN$
  23.      PRINT AD1$
  24.      PRINT AD2$;", ";AD3$;"  ";
  25.      PRINT zp$
  26.  
  27. PRINT:PRINT
  28.  
  29.      PRINT"Billing Date:  "; DATE$;
  30.      db$ = DATE$
  31.      PRINT SPC(10);"Balance Forward:  ";
  32.      PRINT USING "$$###.##";BF;
  33.  
  34. WINDOW 4,"",(10,150)-(485,325),3
  35. TEXTFACE(1)
  36.  HM = 1
  37.   DTail:
  38.      IF HM > 1 THEN Detail
  39.   JobDescript:
  40.     LINE INPUT;"Job Description: ",JD$(HM)
  41.      PRINT TAB (40);
  42.       IF JD$(HM) = "" THEN Detail
  43.   GetTheDate:
  44.     LINE INPUT "Date: ",DA$(HM)
  45.     IF DA$(HM) = "" THEN DA$(HM) = LEFT$(DATE$,6)+RIGHT$(DATE$,2)
  46.     IF LEN(DA$(HM)) = 2 THEN SubDA$ = DA$(HM): DA$(HM) = LEFT$(DATE$,3) + SubDA$ + "-" + RIGHT$(DATE$,2)
  47.     IF LEN(DA$(HM)) = 5 THEN SubDA$ = DA$(HM): DA$(HM) = SubDA$ + "-" + RIGHT$(DATE$,2)
  48.     IF LEN (DA$(HM)) <> 8 THEN GetTheDate
  49.     GOSUB ExSpace
  50.   Detail:
  51.   IF HM = 11 THEN BEEP
  52.     LINE INPUT;"Detail: ",DT$(HM)
  53.     REM modify glossary
  54.     
  55.     IF DT$(HM) = "t" THEN DT$(HM) = "typesetting"
  56.     IF DT$(HM) = "p" THEN DT$(HM) = "paste-up"
  57.     REM don't change these
  58.     IF DT$(HM) = "jd" THEN GOSUB ExSpace:GOTO JobDescript
  59.     IF DT$(HM) = "" THEN CalcTx
  60.     PRINT TAB(40);
  61.     INPUT "Charge: $",CH(HM)
  62.     HM = HM+1: GOTO DTail
  63.   ExSpace:
  64.     PRINT
  65.     RETURN
  66.     
  67.   CalcTx:
  68.     OPEN "Tax Rate" FOR INPUT AS #1
  69.     INPUT #1, TaxRate
  70.     CLOSE #1
  71.     TaxRate$ = STR$(TaxRate*100)
  72. TX = CH(1)
  73.     FOR X = 2 TO HM-1
  74.     TX = TX+CH(X)
  75.     NEXT
  76.     ST = TX
  77.     IF ts$ = "y" THEN GOTO TxClr
  78.     TX = ST*TaxRate
  79.     GOTO FinlScreen 
  80.     
  81.   TxClr:
  82.     TX = 0
  83.     
  84. FinlScreen:
  85.     WINDOW CLOSE 3:WINDOW CLOSE 4
  86. FinlScreenTwo:
  87. CLS
  88. WINDOW 3,"",(25,45)-(440,330),3
  89. TEXTSIZE (10):TEXTFACE(1)
  90.     PRINT CN$
  91.     TEXTFACE(5)
  92.     PRINT"Billing Date: ";db$;
  93.     FOR lc = 1 TO 22
  94.     PRINT" ";
  95.     NEXT
  96.     PRINT SPC(0);"Balance Forward: ";
  97.     PRINT USING "$$###.##";BF
  98.     TEXTFACE(1)
  99.   
  100. PRINT
  101.          
  102. FOR X = 1 TO HM-1
  103.   Date:
  104.     IF DA$(X) = "" THEN JbDesc
  105.     PRINT TAB(1); DA$(X);
  106.   JbDesc:
  107.     IF JD$(X) = "" THEN Deetl
  108.     TEXTFACE(5)
  109.     PRINT TAB(13);JD$(X);":"
  110.     TEXTFACE(1)
  111.   Deetl:
  112.     IF DT$(X) = "" THEN Again
  113.     PRINT TAB(15); DT$(X);
  114.     IF CH(X) = 0 THEN Again:
  115.     PRINT TAB(44);
  116.     PRINT USING "$$###.##";CH(X)
  117.     
  118.   Again:
  119.     NEXT
  120.     
  121. PRINT
  122.  
  123.     PRINT:PRINT TAB(1);"Subtotal";
  124.     PRINT TAB(44);
  125.     PRINT USING "$$###.##";ST
  126.     IF TX = 0 THEN FinAmt
  127.     PRINT TAB(1);"Tax (";TaxRate$;"%)";
  128.     PRINT TAB(44);
  129.     PRINT USING "$$###.##";TX
  130.   FinAmt:
  131.     PRINT TAB(1);"Total this invoice";
  132.     PRINT TAB(44);
  133.     tt = (ST+TX)    
  134.     IT$ = STR$(tt)
  135.     PRINT USING "$$###.##";tt
  136.     
  137.     PRINT TAB(1);"NEW BALANCE FORWARD";
  138.     PRINT TAB(44);
  139.     bt = (ST+TX+BF)
  140.     PRINT USING "$$###.##";bt
  141.     REM this feature not yet implemented
  142.     IF CO$ = "temp" THEN OPEN "Temporary" FOR APPEND AS#1
  143.     IF CO$ = "temp" THEN PRINT #1,ts$:PRINT #1,db$:PRINT #1,CN$
  144.     IF CO$ = "temp" THEN PRINT #1,AD1$:PRINT#1,AD2$:PRINT #1,AD3$
  145.     IF CO$ = "temp" THEN PRINT#1, zp$:PRINT#1,IT$: CLOSE #1: GOTO Choyce2
  146.     IF RePeet = 1 THEN RePeet = 0: GOTO Choyce2
  147.   Choyce:
  148.     WINDOW 4,"",(445,45)-(507,330),-3
  149.     BUTTON 1,1,"OK",(7,25)-(55,80),1
  150.     BUTTON 2,1,"again",(7,100)-(55,160),1
  151.     BUTTON 3,1,"quit",(7,180)-(55,240),1
  152.     WHILE DIALOG(0)<>1:WEND
  153.      ButtonPushed = DIALOG(1)
  154.      IF ButtonPushed = 1 THEN PrntToDsk
  155.      IF ButtonPushed  = 2 THEN  GOSUB ClearItAll:WINDOW CLOSE 3:WINDOW CLOSE 4:TEXTSIZE(12):GOTO SecScreen
  156.      IF ButtonPushed  = 3 THEN  WINDOW CLOSE 3:WINDOW CLOSE 4:CLS:LOAD "Open Me First",R
  157.  
  158.     PrntToDsk:
  159.         OPEN CO$ FOR OUTPUT AS #1
  160.         PRINT #1,bt
  161.         CLOSE #1
  162.     PrntToBilled:
  163.         OPEN "Accts Billed" FOR APPEND AS #1
  164.         PRINT #1, ts$
  165.         PRINT #1, CO$
  166.         PRINT #1,db$
  167.         PRINT #1, CN$
  168.         PRINT #1,IT$
  169.         CLOSE #1
  170.    Choyce2:
  171.        WINDOW 4,"",(445,45)-(507,330),-3
  172.        BUTTON 1,1,"print",(7,25)-(55,80),1
  173.        BUTTON 2,1,"new",(7,100)-(55,160),1
  174.        BUTTON 3,1,"quit",(7,180)-(55,240),1
  175.        WHILE DIALOG(0)<>1:WEND
  176.        ButtonPushed = DIALOG(1)
  177.        IF ButtonPushed = 1 THEN PrntWarning
  178.        IF ButtonPushed  = 2 THEN  WINDOW CLOSE 3:WINDOW CLOSE 4:GOTO CodeChk
  179.        IF ButtonPushed  = 3 THEN WINDOW CLOSE 3:WINDOW CLOSE 4:CLS:LOAD "Open Me First",R
  180.  
  181.  
  182.    PrntWarning:
  183.     WINDOW 2,"",(105,190)-(365,270),-2
  184.     TEXTFACE(1)
  185.     PRINT"Please make sure printer is turned"
  186.     PRINT"on and loaded with paper."
  187.     BUTTON 1,1,"OK",(105,45)-(165,65),1
  188.     BUTTON 2,1,"cancel",(185,45)-(245,65),1
  189.     WHILE DIALOG(0)<>1:WEND
  190.     ButtonPushed  = DIALOG(1)
  191.     IF ButtonPushed = 1 THEN WINDOW CLOSE 2:WINDOW OUTPUT 4
  192.     IF ButtonPushed = 2 THEN WINDOW CLOSE 2:WINDOW OUTPUT 4:GOTO Choyce2
  193.  
  194.      FOR mp = 1 TO 7
  195.      LPRINT CHR$(10)
  196.      NEXT
  197.      LPRINT TAB(8); CN$
  198.      LPRINT TAB(8); AD1$
  199.      LPRINT TAB(8); AD2$;", ";AD3$;"  ";
  200.      LPRINT zp$
  201.   
  202.     FOR mp = 1 TO 2
  203.     LPRINT CHR$(10)
  204.     NEXT
  205.     LPRINT TAB(2);"Billing date:  ";DATE$;
  206.     LPRINT TAB(79);
  207.     LPRINT USING "$$###.##";BF
  208.     
  209.     FOR m = 1 TO 2
  210.     LPRINT CHR$(10)
  211.     NEXT
  212.  
  213. FOR X = 1 TO HM-1
  214.  
  215.   Dte:
  216.     IF DA$(X) = "" THEN JbDes
  217.     LPRINT TAB(0);DA$(X);
  218.   JbDes:
  219.     IF JD$(X) = "" THEN Deet
  220.     LPRINT TAB(13);CHR$(27);"X";JD$(X);":";
  221.     LPRINT CHR$(27);"Y"
  222.   Deet:
  223.     IF DT$(X) = "" THEN Agin
  224.     LPRINT TAB(15); DT$(X);
  225.     IF CH(X) = 0 THEN Agin
  226.     LPRINT TAB (60);
  227.     LPRINT USING "$$###.##";CH(X)
  228.   Agin:
  229.     NEXT
  230.     LPRINT CHR$(10)
  231.     LPRINT TAB(13);"Subtotal";
  232.     LPRINT TAB(79);
  233.     LPRINT USING "$$###.##";(ST)
  234.       IF TX = 0 THEN FAmt
  235.     LPRINT TAB(13);"Tax (";TaxRate$;"%)";
  236.     LPRINT TAB(79);
  237.     LPRINT USING "$$###.##";TX
  238.   FAmt:
  239.     LPRINT""
  240.     LPRINT TAB(13);"Total This Invoice";
  241.     LPRINT TAB(79);
  242.     LPRINT USING "$$###.##";tt
  243.     
  244.     LPRINT TAB(13);"NEW BALANCE FORWARD";
  245.     LPRINT TAB(79);
  246.     LPRINT USING "$$###.##";bt
  247.  
  248.     GOTO Choyce2
  249.   Code:
  250.     CLOSE #1
  251.     OPEN "Customers A" FOR INPUT AS #1
  252.   ReedIt:
  253.     IF EOF(1) THEN CLOSE #1: CLS:TEXTFACE(1):PRINT:PRINT"This customer not on file…":FOR m = 1 TO 2500:NEXT:CLS:LOAD "NewCust",R
  254.     INPUT #1,CD$,CN$,AD1$,AD2$,AD3$,zp$,ts$
  255.     IF CD$ = CO$ THEN CLOSE #1:GOTO AssignVal
  256.     GOTO ReedIt
  257.   AssignVal:
  258.     OPEN CO$ FOR INPUT AS #1
  259.     INPUT#1, BF
  260.     CLOSE #1
  261.     GOTO SecScreen
  262.   ListCodes:
  263. CLS
  264.   Lst:
  265.      OPEN "Customers B" FOR INPUT AS #1
  266.      WINDOW 2,"",(25,50)-(476,280),3
  267.   OpFile:
  268.      TEXTFACE(1)
  269.      IF EOF(1) THEN CLOSE #1:TEXTFACE(0):GOTO NewWndw
  270.      INPUT #1,CD$,CN$,ts$
  271.      PRINT CD$;
  272.      PRINT" - ";CN$
  273.      GOTO OpFile
  274.  
  275.   NewWndw:
  276.  WINDOW 3,"",(25,285)-(476,330),-3
  277.     BUTTON 1,1,"again",(55,10)-(130,35),1
  278.     BUTTON 2,1,"enter info",(192,10)-(267,35),1
  279.     BUTTON 3,1,"quit",(329,10)-(404,35),1
  280.       WHILE DIALOG(0)<>1:WEND
  281.       ButtonPushed = DIALOG(1)
  282.       IF ButtonPushed = 1 THEN Lst
  283.       IF ButtonPushed  = 2 THEN  WINDOW CLOSE 2:WINDOW CLOSE 3:RUN
  284.       IF ButtonPushed  = 3 THEN LOAD "Open Me First",R
  285.  
  286.   YourChoice:
  287.     WINDOW 3,"",(25,285)-(476,330),-3
  288.     BUTTON 1,1,"again",(55,10)-(130,35),1
  289.     BUTTON 2,1,"print",(192,10)-(267,35),1
  290.     BUTTON 3,1,"quit",(329,10)-(404,35),1
  291.     WHILE DIALOG(0)<>1:WEND
  292.     ButtonPushed  = DIALOG(1)
  293.     IF ButtonPushed  = 1 THEN Strt
  294.     IF ButtonPushed  = 2 THEN PrntWarning
  295.     IF ButtonPushed  = 3 THEN WINDOW OUTPUT 1: CLS: WINDOW CLOSE 2:WINDOW CLOSE 3: LOAD "Open Me First",R
  296.      REM The following not implemented yet
  297.   Temp:
  298.      CLS
  299.      PRINT:PRINT
  300.      PRINT SPC (1);"Customer Name:";
  301.      TEXTFACE(1):PRINT TAB(25);
  302.      INPUT"",CN$
  303.      TEXTFACE(0)
  304.      PRINT SPC (1);"Street Address:";
  305.      TEXTFACE(1):PRINT TAB(25);
  306.      INPUT"",AD1$
  307.      TEXTFACE(0)
  308.      PRINT SPC (1);"City:";
  309.      TEXTFACE(1):PRINT TAB(25);
  310.      INPUT"",AD2$
  311.      TEXTFACE(0)
  312.      PRINT SPC (1);"State:";
  313.      TEXTFACE(1):PRINT TAB(25);
  314.      INPUT"",AD3$
  315.      TEXTFACE(0)
  316.      PRINT SPC (1);"Zip Code:";
  317.      TEXTFACE(1):PRINT TAB(25);
  318.      INPUT"",zp$
  319.      TEXTFACE (0)
  320.      
  321. PRINT
  322.  
  323.      TaxQues:
  324.        TEXTFACE (0)
  325.        PRINT SPC (1);"Is customer tax-exempt (y/n)?";
  326.        TEXTFACE(1):PRINT TAB(25);
  327.        INPUT"",ts$
  328.        IF ts$ = "y" THEN SetBal
  329.        IF ts$ <> "n" THEN TaxQues
  330.        TEXTFACE(0)
  331.      SetBal:
  332.        TEXTFACE (0)
  333.        PRINT:PRINT SPC (1);"Balance forward:";
  334.        TEXTFACE(1):PRINT TAB(25);
  335.        INPUT"",BF
  336.        TEXTFACE(0)
  337.        GOTO SecScreen
  338.        
  339. ClearItAll:
  340.     FOR clearall = 1 TO 13
  341.     DT$(clearall) = "":DA$(clearall) = "":JD$(clearall) = "":CH(clearall) = 0:
  342.     NEXT
  343.     RETURN
  344.  
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.  
  404.  
  405.  
  406.  
  407.  
  408.  
  409.  
  410.  
  411.